<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use DB;
use App\Http\Requests;
use App\Http\Controllers\Controller;
use Gregwar\Captcha\CaptchaBuilder;
use Session;
use Hash;

class HomeLoginController extends Controller
{
    // 解析前台登录首页
    public function getIndex()
    {
        return view('home.login.login');
    }

    // 处理表单提交数据
    public function postDologin(Request $request){
        // 接收表单提交的信息
        $username = $request->input('username'); //用户名
        $password = $request->input('password'); //密码
        $code = $request->input('code'); //验证码

        // 验证提交的数据
        if (empty($username)) {
            return '请填写您的用户名';
        }

        if (empty($password)) {
            return '请填写您的密码';
        }

        if (empty($code)) {
            return '验证码不能为空';
        }

        if ($code != session('Vcode')) {
            return '验证码错误';
        }

        // 查询数据库 判断用户是否存在
        $res = DB::table('hm_users')->where('username', $username)->first();
        if ($res) {
                // 判断密码是否正确
                if (Hash::check($password, $res->password)) {
                    // 登录成功 跳转首页并将用户Id存入session中
                    session(['id' => $res->id, 'username' => $res->username]);
                    return '登录成功';
                }else{
                    // 返回登录页并提示错误信息
                    echo '您的密码不正确,请重新输入<br>';
                }
        }else{
            // 返回登录页并提示错误信息
            echo '您的用户名不正确,请重新输入<br>';
        }
    }

    // 生成验证码
    public static function getCode(){
        ob_clean();//清除输出缓存区的内容
        //生成验证码图片的Builder对象，配置相应属性
        $builder = new CaptchaBuilder;
        //可以设置图片宽高及字体
        $builder->build($width = 100, $height = 40, $font = null);
        //获取验证码的内容
        $phrase = $builder->getPhrase();

        //把内容存入session
        session(['Vcode'=>$phrase]);
        //生成图片
        header("Cache-Control: no-cache, must-revalidate");
        header('Content-Type: image/jpeg');
        $builder->output();
        // die();
    }

    // 退出登录
    public function getLogout(){
        // 清除session
        session()->forget(['id', 'username']);
        return redirect('/');
    }

    
}
